<?php

namespace JLPay\Models\Fund\Deferred;

use JLPay\Models\BaseRequest;

/**
 * 资金解冻请求
 */
class FundUnfreezeRequest extends BaseRequest
{
    /**
     * API前缀
     */
    public const API_PREFIX = '/open/fund/deferred/order';
    
    /**
     * API URI
     */
    public const API_URI = '/unfreeze';

    protected ?string $merchNo = null;
    protected ?string $outOrderId = null;
    protected ?string $oriOutOrderId = null;
    protected ?string $unfreezeAmount = null;
    protected ?string $reason = null;
    protected ?string $remark = null;

    /**
     * 设置商户号
     *
     * @param string $merchNo
     * @return self
     */
    public function setMerchNo(string $merchNo): self
    {
        $this->merchNo = $merchNo;
        return $this;
    }

    /**
     * 设置外部订单ID
     *
     * @param string $outOrderId
     * @return self
     */
    public function setOutOrderId(string $outOrderId): self
    {
        $this->outOrderId = $outOrderId;
        return $this;
    }

    /**
     * 设置原外部订单ID
     *
     * @param string $oriOutOrderId
     * @return self
     */
    public function setOriOutOrderId(string $oriOutOrderId): self
    {
        $this->oriOutOrderId = $oriOutOrderId;
        return $this;
    }

    /**
     * 设置解冻金额
     *
     * @param string $unfreezeAmount
     * @return self
     */
    public function setUnfreezeAmount(string $unfreezeAmount): self
    {
        $this->unfreezeAmount = $unfreezeAmount;
        return $this;
    }

    /**
     * 设置原因
     *
     * @param string $reason
     * @return self
     */
    public function setReason(string $reason): self
    {
        $this->reason = $reason;
        return $this;
    }

    /**
     * 设置备注
     *
     * @param string $remark
     * @return self
     */
    public function setRemark(string $remark): self
    {
        $this->remark = $remark;
        return $this;
    }

    /**
     * 获取商户号
     *
     * @return string|null
     */
    public function getMerchNo(): ?string
    {
        return $this->merchNo;
    }

    /**
     * 获取外部订单ID
     *
     * @return string|null
     */
    public function getOutOrderId(): ?string
    {
        return $this->outOrderId;
    }

    /**
     * 获取原外部订单ID
     *
     * @return string|null
     */
    public function getOriOutOrderId(): ?string
    {
        return $this->oriOutOrderId;
    }

    /**
     * 获取解冻金额
     *
     * @return string|null
     */
    public function getUnfreezeAmount(): ?string
    {
        return $this->unfreezeAmount;
    }

    /**
     * 获取原因
     *
     * @return string|null
     */
    public function getReason(): ?string
    {
        return $this->reason;
    }

    /**
     * 获取备注
     *
     * @return string|null
     */
    public function getRemark(): ?string
    {
        return $this->remark;
    }
} 